#ifndef HERITAGE_H_
#define HERITAGE_H_

#include <iostream>

enum class TimeZone {
    BEIJING = 0,
    BST = 1,
    CET = 2,
    PST = 3,
    IDLE = 4
};

class BaseTime{
    public:
        BaseTime();
        BaseTime(int hour, int minute, int second);
        ~BaseTime();
    
    public:
        void SetHour(int);

        void SetMinute(int);

        void SetSecond(int);

        int GetHours();

        int GetMinutes();

        int GetSeconds();

        void ShowTime();
    
    protected:
        int hour_ = 0;
        int minute_ = 0;
        int second_ = 0;
};

class Time : public BaseTime{
    public:
        Time();
        Time(int hour, int minute, int second, TimeZone zone);
        ~Time();

        void ShowTime();

        void ShowTimeZone();

        void SetZone(TimeZone zone);

        TimeZone GetZone();

    private:
        TimeZone zone_;
};

#endif
